﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RWLibrary.Logic.Statements
{
    public class StatementManager
    {

        private InitiallyStatement _init = null;

        public InitiallyStatement Initially
        {
            get { return _init; }
            set { if (_init != null) throw new Exception("Initially can be set only once"); _init = value; }
        }

        private List<AlwaysStatement> _always = new List<AlwaysStatement>();

        public List<AlwaysStatement> Always
        {
            get { return _always; }
            
        }

        private List<CausesStatement> _causes = new List<CausesStatement>();

        public List<CausesStatement> Causes
        {
            get { return _causes; }            
        }

        private List<ConstraintStatement> _constraint = new List<ConstraintStatement>();

        public List<ConstraintStatement> Constraint
        {
            get { return _constraint; }
        }

        private List<ObservationStatement> _observation = new List<ObservationStatement>();

        public List<ObservationStatement> Observation
        {
            get { return _observation; }
        }

        private List<ReleaseStatement> _release = new List<ReleaseStatement>();

        public List<ReleaseStatement> Release
        {
            get { return _release; }
        }
        
        

    }
}
